package org.mcflier.appuntamento.data.model.abstracts;

import java.sql.Timestamp;
import java.util.List;

import org.mcflier.appuntamento.data.model.TorrentList;
import org.mcflier.appuntamento.data.model.interfaces.ITorrentList;
import org.mcflier.appuntamento.i18n.Language;

public abstract class AbstractTorrentList implements ITorrentList {
	
	private String sourceLink;
	
	public AbstractTorrentList(String sourceLink){
		if(sourceLink==null)
			throw new NullPointerException("The source link must not be null");
		
		this.sourceLink = sourceLink;
	}

	@Override
	public abstract String getTitle();

	@Override
	public abstract void setTitle(String title);

	@Override
	public abstract String getLink();

	@Override
	public abstract void setLink(String link);

	@Override
	public String getSourceLink() {
		return this.sourceLink;
	}

	@Override
	public abstract String getDescription();

	@Override
	public abstract void setDescription(String description);

	@Override
	public abstract Timestamp getPubDate();

	@Override
	public abstract void setPubDate(Timestamp pubDate);

	@Override
	public abstract Timestamp getLastBuildDate();
	
	@Override
	public abstract void setLastBuildDate(Timestamp lastBuildDate);

	@Override
	public abstract Language getLanguage();

	@Override
	public abstract void setLanguage(Language language);

	@Override
	public abstract void addItem(TorrentList.TorrentListItem item);

	@Override
	public abstract List<TorrentList.TorrentListItem> getItems();
}